package com.example.testplatform.service;

import com.example.testplatform.entity.TestApplication;
import java.util.List;
import java.util.Map;

public interface TestApplicationService {
    
    // 获取申请单列表（分页）
    Map<String, Object> getApplicationList(Integer page, Integer pageSize, Map<String, Object> params);
    
    // 根据ID获取申请单详情
    TestApplication getApplicationById(Long id);
    
    // 创建申请单
    boolean createApplication(TestApplication application);
    
    // 更新申请单
    boolean updateApplication(TestApplication application);
    
    // 删除申请单
    boolean deleteApplication(Long id);
    
    // 提交申请单
    boolean submitApplication(Long id);
    
    // 平台审核-同意
    boolean approveApplication(Long id, String platformAuditOpinion);
    
    // 平台审核-拒绝
    boolean rejectApplication(Long id, String platformAuditOpinion);
    
    // 测试负责人审批-同意
    boolean testManagerApprove(Long id, String testManagerAuditOpinion, String testerIds);
    
    // 测试负责人审批-拒绝
    boolean testManagerReject(Long id, String testManagerAuditOpinion);
    
    // 取消申请单
    boolean cancelApplication(Long id, String reason);
    
    // 获取申请单历史记录
    List<Map<String, Object>> getApplicationHistory(Long applicationId);
}